package abstractfactory;

/**
 * 工厂方法模式和下抽象工厂模式对比：
 * <p>
 * 1.工厂方法是一种极端情况的抽象工厂，抽象工厂是工厂方法模式的推广
 * 2.工厂方法用来创建一个产品的等级结构，抽象工厂用来创建多个产品的等级结构
 * 3.工厂方法有一个抽象产品类，抽象工厂有多个产品抽象类
 * 优点：
 * 1.抽象工厂模式隔离了具体类的生成，使得客户并不需要知道什么被创建
 * 2.增加新的产品族很方便，无须修改已有系统，符合“开闭原则”。
 * <p>
 * 缺点：
 * 1.增加新的产品等级结构麻烦，需要对原有系统进行较大的修改，
 * 甚至需要修改抽象层代码，这显然会带来较大的不便，违背了“开闭原则”
 * 2.需要使用更多的类来扩展功能
 * 应用
 * 1.QQ一键换皮肤，jdbc连接不同的数据库
 * Created by Administrator on 2017/1/8.
 */
public interface Factory {
    /**
     * 生产披萨
     *
     * @return
     */
    Pizza createPizza();

    /**
     * 生产汉堡
     *
     * @return
     */
    Hamburger createHamburger();
}
